package br.edu.ifrn.tads.rettiwt.beans;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType=IdentityType.APPLICATION, detachable="true")
public class Usuario implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@PrimaryKey
	@Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY)
    private Long id;
    
    @Persistent
	private String nome;
    
    @Persistent
    private String username;
    
    @Persistent
    private String email;
    
    @Persistent
    private String biografia;
    
    @Persistent
    private Date dataCriacao;
    
/*    @Persistent
    private Byte imagem;*/
    
/*    @Persistent
    private List<Long> seguidos;
    
    @Persistent
    private List<Long> seguidores;*/
    
    @Persistent
    private List<Long> mensagensEnviadas;
    
/*    @Persistent
    private List<Grupo> grupos;
    */
/*
    private List<Long> mensagensFavoritas;
    

    private List<Long> mensagensParticularesRecebidas;
*/
    	

	public Usuario() {
		super();
/*		this.grupos = new LinkedList<Grupo>();*/
		this.mensagensEnviadas = new LinkedList<Long>();
/*		this.mensagensFavoritas = new LinkedList<Long>();
		this.mensagensParticularesRecebidas = new LinkedList<Long>();*/
/*		this.seguidores = new LinkedList<Long>();
		this.seguidos = new LinkedList<Long>();*/
	}
	
	//FIX ME
/*	public void postarRecado(Mensagem mensagem){
		this.mensagensEnviadas.add(null);
	}*/

	public void adicionarMensagemEnviada(Mensagem msg){
		this.mensagensEnviadas.add(msg.getOid());		
	}
	
	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
	
	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getBiografia() {
		return biografia;
	}

	public void setBiografia(String biografia) {
		this.biografia = biografia;
	}

	public Date getDataCriacao() {
		return dataCriacao;
	}

	public void setDataCriacao(Date dataCriacao) {
		this.dataCriacao = dataCriacao;
	}

/*	public Byte getImagem() {
		return imagem;
	}

	public void setImagem(Byte imagem) {
		this.imagem = imagem;
	}*/

/*	public List<Long> getSeguidos() {
		return seguidos;
	}

	public void setSeguidos(List<Long> seguidos) {
		this.seguidos = seguidos;
	}

	public List<Long> getSeguidores() {
		return seguidores;
	}

	public void setSeguidores(List<Long> seguidores) {
		this.seguidores = seguidores;
	}*/

	public List<Long> getMensagensEnviadas() {
		return mensagensEnviadas;
	}

	public void setMensagensEnviadas(List<Long> mensagensEnviadas) {
		this.mensagensEnviadas = mensagensEnviadas;
	}

/*	public List<Grupo> getGrupos() {
		return grupos;
	}

	public void setGrupos(List<Grupo> grupos) {
		this.grupos = grupos;
	}*/

/*	public List<Long> getMensagensFavoritas() {
		return mensagensFavoritas;
	}

	public void setMensagensFavoritas(List<Long> mensagensFavoritas) {
		this.mensagensFavoritas = mensagensFavoritas;
	}

	public List<Long> getMensagensParticularesRecebidas() {
		return mensagensParticularesRecebidas;
	}

	public void setMensagensParticularesRecebidas(
			List<Long> mensagensParticularesRecebidas) {
		this.mensagensParticularesRecebidas = mensagensParticularesRecebidas;
	}	*/	
}
